﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Hack.Pdb2Mdb
{
    public sealed class UsedNamespace : IUsedNamespace
    {

        public UsedNamespace(IName alias, IName namespaceName)
        {
            this.alias = alias;
            this.namespaceName = namespaceName;
        }

        public IName Alias
        {
            get { return this.alias; }
        }
        readonly IName alias;

        public IName NamespaceName
        {
            get { return this.namespaceName; }
        }
        readonly IName namespaceName;

    }

    public class NamespaceScope : INamespaceScope
    {

        public NamespaceScope(IEnumerable<IUsedNamespace> usedNamespaces)
        {
            this.usedNamespaces = usedNamespaces;
        }

        public IEnumerable<IUsedNamespace> UsedNamespaces
        {
            get { return this.usedNamespaces; }
        }
        readonly IEnumerable<IUsedNamespace> usedNamespaces;

    }

    public sealed class PdbIteratorScope : ILocalScope
    {

        public PdbIteratorScope(uint offset, uint length)
        {
            this.offset = offset;
            this.length = length;
        }

        public uint Offset
        {
            get { return this.offset; }
        }
        uint offset;

        public uint Length
        {
            get { return this.length; }
        }
        uint length;

    }
}
